package com.lj.sys.service;

import com.lj.mp.standard.StandardService;
import com.lj.sys.entity.SysDept;
import com.lj.sys.param.SysDeptSaveParam;
import com.lj.sys.param.SysDeptUpdateParam;
import com.lj.sys.result.SysDeptInfoResult;

import java.util.List;

/**
 * <p>
 * 系统部门表 服务类
 * </p>
 *
 * @author luojing
 * @since 2024-12-20 21:27:32
 */
public interface SysDeptService extends StandardService<SysDept> {


    SysDeptInfoResult info(Long id);

    void save(SysDeptSaveParam param);

    void update(SysDeptUpdateParam param);


    /**
     * 用于管理用户当前的部门
     *
     * @return 当前用户所在部门及其子部门树
     */
    List<SysDeptInfoResult> tree();

    /**
     * 删除部门
     *
     * @param id 部门id
     */
    void delete(Long id);

    /**
     * 获取用户所在部门及其所有子部门的id列表
     *
     * @return 用户所在部门及其所有子部门的id列表
     */
    List<Long> allDeptId();
}
